---
title: "Getting Started"
---
import { Tabs, TabItem } from '@astrojs/starlight/components'
import PackageManager from '#/components/package-manager/PackageManager.astro'

The Union Client is TypeScript-first and framework agnostic.
At [app.union.build](https://app.union.build) we use [Svelte](https://svelte.dev), but you can use any framework or no frameworks at all.

If you're a [React](https://reactjs.org) developer, [checkout this demo on Stackblitz](https://stackblitz.com/edit/github-nav3yr-xbanxq?file=src%2Fapp.tsx).

:::note
If you need testnet tokens for testing, visit https://app.union.build/faucet and do some shopping.
:::

## Installation

<Tabs syncKey="package-manager">
<TabItem label="pnpm" icon="pnpm">
```sh
pnpm add @unionlabs/sdk@^2.0.0-beta.0
```
</TabItem>
<TabItem label="yarn" icon="seti:yarn">
```sh
yarn add @unionlabs/sdk@^2.0.0-beta.0
```
</TabItem>
<TabItem label="npm" icon="seti:npm">
```sh
npm install @unionlabs/sdk@^2.0.0-beta.0
```
</TabItem>
</Tabs>

:::caution[Peer Dependencies]
Ensure peer dependencies are satisfied by your package manager. [`pnpm`](https://pnpm.io/) is recommended for its first-party support for enforcing strict peer dependencies and protection against [phantom dependencies](https://rushjs.io/pages/advanced/phantom_deps/) and [NPM dopplegangers](https://rushjs.io/pages/advanced/npm_doppelgangers/).

**Required**
- `effect`: for execution of SDK defined programs

**Optional**
- `viem`: for EVM usage
- `@cosmjs/stargate`: for Cosmos usage
- `@mysten/sui`: for Sui usage
:::

## Examples

The sidebar contains examples separated by source chain ecosystem.

## API Documentation

See the [`@unionlabs/sdk` API documentation](/reference/unionlabs/sdk/indexts/), which is autogenerated and organized by module.
